# 代码编写者： 李朔
# 开发时间： 2021/9/11 15:03
s=[1,2,3,4,5,6,71,10,9,10]

#每一次递归的Part工作
def partition(s,l_pointer,r_pointer):
    key=s[l_pointer]  #取第一个索引值为枢纽值
    first,last=l_pointer,r_pointer-1
    while first<last:
        while first<last and s[last]>=key:
            last-=1
        s[first]=s[last]
        while first<last and s[first]<=key:
            first+=1
        s[last]=s[first]
    s[first]=key
    return first


def Quick_sort(s,l_pointer,r_pointer):
    if l_pointer+1>=r_pointer:
        return None
    #该部分子串的处理工作
    key_index=partition(s,l_pointer,r_pointer)
    Quick_sort(s,l_pointer,key_index)
    Quick_sort(s,key_index+1,r_pointer)
Quick_sort(s,0,len(s))
print(s)